From: kfraser@localhost.localdomain Date: Tue, 17 Oct 2006 17:50:08 +0000 (+0100) Subject: Define REX64_PREFIX to account for assembler syntax differences on SVR4 targets. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~15589^2~65 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks://%22/%22http:/www.example.com/cgi/%22https:/%22bookmarks:/%22?a=commitdiff_plain;h=1943191f67703b7fe41838cd2b40e061cfab8541;p=xen.git Define REX64_PREFIX to account for assembler syntax differences on SVR4 targets. Signed-off-by: John Levon --- diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c index ebfc37fa7b..899f80da3b 100644 --- a/xen/arch/x86/i387.c +++ b/xen/arch/x86/i387.c @@ -14,6 +14,7 @@ #include #include #include +#include void init_fpu(void) { @@ -41,11 +42,11 @@ void save_init_fpu(struct vcpu *v) #else /* __x86_64__ */ /* * The only way to force fxsaveq on a wide range of gas versions. On - * older versions the rex64 prefix works only if we force an addressing - * mode that doesn't require extended registers. + * older versions the rex64 prefix works only if we force an + * addressing mode that doesn't require extended registers. */ __asm__ __volatile__ ( - "rex64/fxsave (%1)" + REX64_PREFIX "fxsave (%1)" : "=m" (*fpu_ctxt) : "cdaSDb" (fpu_ctxt) ); #endif @@ -95,7 +96,7 @@ void restore_fpu(struct vcpu *v) "1: fxrstor %0 \n" #else /* __x86_64__ */ /* See above for why the operands/constraints are this way. */ - "1: rex64/fxrstor (%2) \n" + "1: " REX64_PREFIX "fxrstor (%2)\n" #endif ".section .fixup,\"ax\" \n" "2: push %%"__OP"ax \n" diff --git a/xen/include/asm-x86/x86_64/asm_defns.h b/xen/include/asm-x86/x86_64/asm_defns.h index 699e81b4f0..05f708adaf 100644 --- a/xen/include/asm-x86/x86_64/asm_defns.h +++ b/xen/include/asm-x86/x86_64/asm_defns.h @@ -60,6 +60,12 @@ #define safe_swapgs \ "mfence; swapgs;" +#ifdef __sun__ +#define REX64_PREFIX "rex64\\" +#else +#define REX64_PREFIX "rex64/" +#endif + #define BUILD_SMP_INTERRUPT(x,v) XBUILD_SMP_INTERRUPT(x,v) #define XBUILD_SMP_INTERRUPT(x,v) \ asmlinkage void x(void); \